﻿#region Imports

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

#endregion

namespace IEC.ColumnOrdering.SP2007.Application.Domain
{

    /// <summary>
    /// Provides a basic implementation of a domain entity collection.
    /// </summary>
    /// <typeparam name="TDomainEntity">
    /// The type of the <see cref="DomainEntity"/> instances contained in the collection.
    /// </typeparam>
    [Serializable]
    public abstract class DomainEntityCollection<TDomainEntity> : Collection<TDomainEntity>
        where TDomainEntity : DomainEntity, new()
    {

        #region Methods - Instance Member

        #region Methods - Instance Member - DomainEntityCollection<TDomainEntity> Members

        #region Methods - Instance Member - DomainEntityCollection<TDomainEntity> Members - (constructors)

        /// <summary>
        /// Initializes a new instance of the <see cref="DomainEntityCollection{TDomainEntity}" /> class.
        /// </summary>
        protected DomainEntityCollection() : base()
        {
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="DomainEntityCollection{TDomainEntity}" /> class.
        /// </summary>
        /// <param name="list">
        /// The list that is wrapped by the new collection.
        /// </param>
        protected DomainEntityCollection(IList<TDomainEntity> list) : base(list)
        {
        }

        #endregion

        #endregion

        #endregion

    }

}
